Welcome to pandas!

4.11 DataFrame表格的重复判断、删除

1、表格的重复判断

去重,是指删除重复数据。在一组数据集合中,找出重复的数据并将其删除,只保留唯一的数据单元, 在数据预处理中,这是一种经常性操作。在excel中也有删除重复值的功能,在pandas中提供了重复项判断和重复项删除。

如果要判断表格的记录是否有重复项,或者对某一列,某几列判断是否有重复项,可以使用df.duplicated() 结构如下

df.duplicated(subset=None,keep=”first”)

subset :指定识别重复项的列标签

keep :确认要标记的重复项

first :除第1次出现外,将重复项标记为True。默认值

last :除最后1次出现外,将重复标记为True

False :将所有重复值标记为True


import pandas as pd

path = r "D:\Pyobject2023\object\测试\素材\测试素材.表格重复判断.xlsx"

df = pd.read_excel(path)

print (df)

t=df.duplicated()

t1=df.duplicated([ "日期","部门" ])

print (t)

print (t1)

返回:

日期 部门 销售员
0 2024-01-01 财务部 张三
1 2024-01-01 采购部 李四
2 2024-01-01 财务部 张三
3 2024-01-02 财务部 李四
4 2024-01-02 财务部 李四
5 2024-01-03 财务部 张三

0 False
1 False
2 True
3 False
4 True
5 False
dtype: bool
0 False
1 False
2 True
3 False
4 True
5 False

dtype: bool

2、表格的重复删除

删除复复项,可以用df.drop_duplicated()函数

构建如下:

Df.drop_duplicates(subset=None,keep=”first”,inplace=False,ignore_Index=False)

Inplace :就地修改

Ignore_index :是否重新设置行索引,默认值为False


import pandas as pd

path = r "D:\Pyobject2023\object\测试\素材\测试素材.表格重复判断.xlsx"

df = pd.read_excel(path)

print (df)

t=df.drop_duplicates( "日期" )

t1=df[df.duplicated( "日期" )] #等同上一行

print (t)

print (t1)

返回:

日期 部门 销售员
0 2024-01-01 财务部 张三
1 2024-01-01 采购部 李四
2 2024-01-01 财务部 张三
3 2024-01-02 财务部 李四
4 2024-01-02 财务部 李四
5 2024-01-03 财务部 张三

日期 部门 销售员
0 2024-01-01 财务部 张三
3 2024-01-02 财务部 李四
5 2024-01-03 财务部 张三

日期 部门 销售员
1 2024-01-01 采购部 李四
2 2024-01-01 财务部 张三
4 2024-01-02 财务部 李四